The present invention relates to a data transmission apparatus for transmitting (including recording and/or reproducing) code data applicable to a digital video tape recorder (VTR), for example, where digital video signals are encoded by block encoding to compress the amount of data and the digital video signal are divided into small blocks and are processed block by block.
The present invention also relates to a data transmission apparatus for transmitting digital data exhibiting relatively good correlation such as video signals and for correcting data having errors without using an error correction code.
When digital video signals are recorded on a recording medium such as a magnetic tape, it is convention to compress the digital video signals by high-efficient encoding in order to make the transmission rate low enough to record/reproduce. Because the amount of data of the digital video signals is large, block encoding such as ADRC (Adaptive Dynamic Range Coding) and DCT (Discrete Cosine Transform), both of which divide digital video signals into small blocks and encode them block by block, has been known as a high-efficient encoding technique.
ADRC is a high-efficient encoding technique which calculates the dynamic range defined by maximum and minimum levels of pixel data among plural pixels included in a two-dimensional block, and encodes the pixel data in accordance with the dynamic range, as described in Japanese Laid-open patent 61-144989. DCT operates to cosine-transform pixels in a block, to re-quantize the co-efficient data obtained by the cosine-transformation, and to encode the quantized coefficient data by variable-length encoding. Another encoding method has been suggested in which the average data in each block is determined and the difference between each pixel data and the average in each block are vector-quantized.
Code outputs resulting from block encoding do not have equal importance. In ADRC, if dynamic range information in a block is unknown at the reproducing side, errors extend to all pixels of that block. Therefore, the dynamic range information which is obtained for every block is more important than the code signal which is obtained for every pixel. In one type of ADRC in which the number of bits for quantization varies depending upon the dynamic range, if there is an error in the dynamic range information, the number of bits for quantization of that block cannot be identified at the receiving side. As a result, the boundaries between that block and other blocks become unknown so that errors extend to the other blocks. Among coefficient data generated in DCT encoding, a DC (direct current) component is more important than AC (alternating current) components. A refresh data in DPCM (Differential Pulse Code Modulation) encoding is also important data.
When the outputs of block encoding are recorded/reproduced by a digital VTR, for example, an error correction code is used to protect data against recording/reproducing errors. When important data happens to have an error which the error correction code cannot correct, the error extends to the whole block. To cure this, the same important data is recorded twice at locations sufficiently separate as not to be subject to a burst error. However, this increases redundancy and lowers the efficiency of data compression.
If the important data in a block contains an error, the important data is estimated, or statistically presumed, based upon spacial correlation between that block and peripheral blocks. More specifically, a least-squares method using the code data of the error block and the decoded data located at boundaries of the peripheral blocks may be used to estimate the important data in the error block. The maximum and minimum values of boundary data of the peripheral blocks may be used to presume the important data. The estimated, or presumed, important data is used for decoding. Even though the important data is estimated with high accuracy, the original important data cannot be restored completely. In addition, finding boundaries between each data block correctly is necessary to estimate the important data. Therefore, if an error extends to several blocks, the important data cannot be estimated.
When digital video signals are recorded/reproduced in a digital VTR, for example, it is also conventional to use error correction coding for correcting errors. As an error correction code, simple parity, Reed-Solomon code and a combination of these along with interleaving have been practically used.
However, when an error correction code is used, redundancy of data increases due to an increase in the number of parity bits needed to improve the error correction ability. When the error cannot be corrected by the error correction code, a conceal circuit is necessary to interpolate the erroneous pixel with peripheral correct pixel data. Data such as computer software generally exhibits no correlation. However, video signals exhibit reasonably good correlation in space and in time.